<span class='title_page'>Editar Transporte: <%= @transporte.ndt%></span>
<%= error_messages_for :transporte %>

<% form_for @transporte, :url => {:action => 'update'} do |f| %>
    <fieldset class="colunas">

        <div class="coluna-1">
            <p>
                <%= f.label :ndt, 'NDT:' %><br/>
                <%= f.text_field :ndt,
                        :onclick => "javascript:somente_numero(this);",
                        :ondrop => "return false;",
						:onblur => "naoExisteNdt('Número de Trasnporte ja existe.');",
                        :onpaste => "return false;",
                        :class => "input-text" %>
            </p>
        </div>
        <!-- /.coluna-1 -->	
		
	<div class="coluna-1" style="float:right; width:100px;">
            <p>
                <label for="pares">Pares:</label> <br/>
                <%= f.text_field "pares",
                        :maxlength => 10,
                        :size => 10,
                        :class => "input-text-layout",
                        :readonly => true,
                        :onkeyup => "javascript:somente_numero(this);" %>
            </p>
	</div>
	<div class="coluna-1" style="float:right; width:100px;">
            <p>
                <label for="cxs">Cxs.:</label> <br/>
                <%= f.text_field "cxs",
                        :maxlength => 10,
                        :size => 10,
                        :class => "input-text-layout",
                        :readonly => true,
                        :onkeyup => "javascript:somente_numero(this);" %>
            </p>		
	</div>

    </fieldset>

    <fieldset class="colunas">
        <% tableize @deposito,
                :generate_css => false,
                :cols => 3 do |d| %>
            <% armazenamento = Armazenamento.find_by_deposito_id_and_transporte_id(d[1], @transporte.id) %>

            <div class="coluna-1">
                <p>
                    <%= check_box "deposito_#{d[1]}", "checkbox", {:class => "input-checkbox checkBoxDeposito",
                            :onclick => "javascript:habilitaTextField(#{d[1]});clickou(#{d[1]});",
                            :checked =>  @transporte.depositos.collect{|deposito| deposito.id}.include?(d[1])}, d[1] %>
                    <label for="aurora"><%= d[0].upcase_br %></label>
                </p>

                <div id="sub-<%= d[1] %>" class="subOpcoes">
                    <p>
                        <label for="paresAurora">Pares:</label> <br/>
                        <%= text_field "deposito_#{d[1]}", "quantidade", {
                                :size => 8,
                                :maxlength => 8,
                                :disabled => !@transporte.depositos.collect{|deposito| deposito.id}.include?(d[1]),
                                :ondrop => "return false;",
                                :onpaste => "return false;",
                                :class => "input-text-layout pares",
                                :value => armazenamento.nil? ? "" : armazenamento.pares,
                                :onkeyup => "javascript:somente_numero(this); soma_pares(#{@deposito.size});"} %>
                    </p>

                    <p>
                        <label for="cxsAurora">CXS:</label> <br/>
                        <%= text_field "deposito_#{d[1]}", "quantidade_cxs", {
                                :size => 8,
                                :maxlength => 8,
                                :ondrop => "return false;",
                                :onpaste => "return false;",
                                :disabled => !@transporte.depositos.collect{|deposito| deposito.id}.include?(d[1]),
                                :class => "input-text-layout cxs",
                                :value => armazenamento.nil? ? "" : armazenamento.cxs,
                                :onkeyup => "javascript:somente_numero(this); soma_cxs(#{@deposito.size});"} %>
                    </p>

                    <p>
                        <label for="boxAurora">BOX:</label> <br/>
                        <% options = {}
                           if armazenamento.nil?
                               options = {:include_blank => true}
                           else
                               options = {:selected=> armazenamento.nil? ? "" : armazenamento.box}
                           end
                        %>
                        <%= select "deposito_#{d[1]}", "box", Array.new(d[2].to_i + 1){|n| n }, options,
                                {:class => 'box comboBox',
                                        :value => armazenamento.nil? ? "" : armazenamento.box,
                                        :disabled => !@transporte.depositos.collect{|deposito| deposito.id}.include?(d[1])} %>
                    </p>
                    <br class="clear"/>
                </div>

                </p>
            </div>
        <% end %>
    </fieldset>



    <fieldset class="colunas">
        <div class="coluna-1">

            <p>
                <label for="transporte_destino">Itinerário:</label> <br/>
                <%= select "transporte", "destino", @destino,
                        {:selected => @transporte.destino.id, :include_blank => true},
                        {:class => 'comboBox'} %>
            </p>

            <p>
                <label for="transporte_transportadora">Transportadora:</label> <br/>
                <%= select "transporte", "transportadora", @transportadora,
                        {:selected => @transporte.transportadora.id, :include_blank => true},
                        {:class => 'comboBox'} %>
            </p>

            <p>
                <label for="transporte_tipo">Tipo:</label> <br/>
                <%= select "transporte", "tipo", @tipo,
                        {:selected => @transporte.tipo.id, :include_blank => true},
                        {:class => 'comboBox'} %>
            </p>

            <p>
                <label for="transporte_status">Status:</label> <br/>
                <%= select "transporte", "status", @status,
                        {:selected => @transporte.status.id, :include_blank => true},
                        {:class => 'comboBox', :onchange => 'exibeDataFaturmento(this);'} %>
            </p>

        </div>
        <!-- /.coluna-1 -->

        <div class="coluna-1">

            <p>
                <label for="transporte_created_at">Data de Criação:</label> <br/>
                <%= f.text_field :created_at,
                        :order => [:day, :month, :year],
                        :maxlength => 10,
                        :ondrop => "return false",
                        :onpaste => "return false",
                        :value => @transporte.created_at.to_s_br[0..10],
                        :class => "input-text-layout selecionaDataCriacao dp-applied",
                        :onfocus =>"",
                        :onkeypress => "Mascara('DATA',this,event);" %>
            </p>

            <p>
                <label for="transporte_volume">Cubagem:</label> <br/>
                <%= f.text_field "m",
                        :maxlength => 10,
                        :size => 10,
                        :ondrop => "return false",
                        :onpaste => "return false",
                        :class => "input-text-layout",
                        :onkeyup => "javascript:somente_numero(this);" %>
            </p>

            <p>
                <label for="transporte_peso">Peso:</label> <br/>
                <%= f.text_field "peso",
                        :maxlength => 10,
                        :size => 10,
                        :ondrop => "return false",
                        :onpaste => "return false",
                        :class => "input-text-layout",
                        :onkeyup => "javascript:somente_numero(this);" %>
            </p>

                <p id='data_de_faturamento'>
                    <label for="transporte_ended_at">Data de Faturamento:</label> <br/>
                    <%= f.text_field :ended_at,
                            :order => [:day, :month, :year],
                            :maxlength => 10,
                            :ondrop => "return false",
                            :onpaste => "return false",
                            :value => @ended_at,
                            :class => "input-text-layout-dataFaturamento selecionaDataFaturamento dp-applied",
                            :onFocus =>"",
                            :onkeypress => "Mascara('DATA',this,event);" %>
                    -
                    <%= select_hour(@hora,{},{:class => 'combBoxhour'}) %>
                    :
                    <%= select_minute(@minuto,{},{:class => 'combBoxhour'}) %>

                </p>

        </div>
        <!-- /.coluna-1 -->

        <div class="coluna-1">

            <p>
                <label for="cxs">Obs.:</label> <br/>
                <%= f.text_field "obs_trans",
                        :maxlength => 50,
                        :size => 50,
                        :class => "input-text-layout", :size => '40' %>
            </p>

            <p>
                <label for="itinerario">Destino:</label> <br/>
                <%= f.text_field "itinerario",
                        :maxlength => 10,
                        :size => 10,
                        :class => "input-text-layout",
                        :tabindex => 999 %>
            </p>

            <p>
                <%= check_box "transporte", "etiqueta", {:class => "input-checkbox"}, 1, 0 %>
                <label for="etq">Etiqueta:</label>
            </p>

            <p>
                <%= check_box "transporte", "carro", {:class => "input-checkbox"}, 1, 0 %>
                <label for="etq">Carro:</label>
            </p>

        </div>
        <!-- /.coluna-1 -->
        <br class="clear"/>
    <!--</fieldset>-->
    <p class="tcen">
        <%= button_to_function "Salvar", "salvar(#{@deposito.size})", :class => "input-submit" %>
		<%= button_to_function "Voltar", "javascript:window.history.go(-1)", :class => "input-submit" %>		
    </p>

    <%= hidden_field_tag 'faturado', "#{!@transporte.ended_at.nil?}" %>
	<%= hidden_field_tag "hoje", Deposito.new.current_time.to_s_br[0..9]%>	
	<%= hidden_field_tag "ndt_antigo", @transporte.ndt %>	
<% end %>

<script type="text/javascript">
/*
// Campos Obrigatórios
//Nº do Transporte
var transporte_ndt = new LiveValidation('transporte_ndt',{validMessage: "√"} );
transporte_ndt.add( Validate.Presence, {failureMessage: "X"});

//Data de criação
var transporte_created_at = new LiveValidation('transporte_created_at',{validMessage: "√"} );
transporte_created_at.add( Validate.Presence, {failureMessage: "X"});

//Pares
var transporte_pares = new LiveValidation('transporte_pares',{validMessage: "√"} );
transporte_pares.add( Validate.Presence, {failureMessage: "X"});

//Cxs
var transporte_cxs = new LiveValidation('transporte_cxs',{validMessage: "√"} );
transporte_cxs.add( Validate.Presence, {failureMessage: "X"});

//Volume
var transporte_m = new LiveValidation('transporte_m',{validMessage: "√"} );
transporte_m.add( Validate.Presence, {failureMessage: "X"});

//Peso
var transporte_peso = new LiveValidation('transporte_peso',{validMessage: "√"} );
transporte_peso.add( Validate.Presence, {failureMessage: "X"});

//Destino
var transporte_destino = new LiveValidation('transporte_destino',{validMessage: "√"} );
transporte_destino.add( Validate.Presence, {failureMessage: "X"});

//Tipo
var transporte_tipo = new LiveValidation('transporte_tipo',{validMessage: "√"} );
transporte_tipo.add( Validate.Presence, {failureMessage: "X"});

//Transportadora
var transporte_transportadora = new LiveValidation('transporte_transportadora',{validMessage: "√"} );
transporte_transportadora.add( Validate.Presence, {failureMessage: "X"});
*/



Event.observe(window, 'load',
    function() {
        <% @deposito.each do |d| %>
            ch = document.getElementById('deposito_' + <%= d[1] %> + '_checkbox');
            if (ch != null && ch.checked == false){
            <%= "$('sub-#{d[1]}').hide();" %>
            }
        <% end %>

        exibeDataFaturmento();
    }
);

function exibeDataFaturmento(){
        if (($('transporte_status') != null) && ($F('transporte_status') == <%= $LIB%> || $F('transporte_status') == <%= $CDO_CNF%> || $F('transporte_status') == <%= $CNDO_CNF%> || $F('transporte_status') == <%= $GDO_CNF%> || $F('transporte_status') == <%= $SEP_CNF%>  || $F('transporte_status') == <%= $CONF_CNF%>)){
			$('data_de_faturamento').show();
			return true;
        }else{
            $('data_de_faturamento').hide();
            return false;
        }            
}

function clickou(tamanho){
        Effect.toggle('sub-'+tamanho, 'appear');
        }

function validarBOX(){	
	var status = $('transporte_status');
	var flag = true;
	if(status != null && (status.value == <%= $FG %> || status.value == <%= $GDO %> || status.value == <%= $GDO_CNF %>)){                  
		$$('select.box').each(
			function(box){
				if(box != null && box.disabled == false && box.value != 0){
					flag = false;
				} 
			}
		);					
		if(flag == false){
			alert('Esse Status(FG, GDO, GDO CNF) não permite que o transporte entre em BOX.');
			status.focus();
			return false;
		}
	}else if(status.value != <%= $FG %> && status.value != <%= $GDO %> && status.value != <%= $GDO_CNF %> && status.value != <%= $CANC %>){
		$$('select.box').each(
			function(box){
				if(box != null && box.disabled == false && box.value == 0){
					flag =  false;
				} 
			}
		);
		if(flag == false){
			alert('Esse Status necessita que todos os Box estejam setados.');
			status.focus();
			return false;				
		}			
	}
	return true;
}

function validaDepositos(tamanho){
		var resultado = new Boolean(false);
        var marcado = new Boolean(false);
		
		$$('input.checkBoxDeposito').each(
			function(ch){
				if(ch != null && ch.checked == true){
					marcado = true;
				} 
			}
		);		

        if (marcado == true){
		
				$$('input.pares').each(function(input){
					if(input != null && input.disabled == false && input.value == "")
						resultado = true;
				});
				
				$$('input.cxs').each(function(input){
					if(input != null && input.disabled == false && input.value == "")
						resultado = true;
				});			

				$$('select.box').each(function(box){
					if(box != null && box.disabled == false && box.value == "")
						resultado = true;
				});						
	
				
                if (resultado == true){
					return false;
				}else{
					return true;
				}
		}else{
			return false;
		}

}	

function salvar(tamanho){

        /*Campos para validação*/
        transporte_ndt = document.getElementById('transporte_ndt');
        transporte_created_at = document.getElementById('transporte_created_at');
        transporte_pares = document.getElementById('transporte_pares');
        transporte_cxs = document.getElementById('transporte_cxs');
        transporte_m = document.getElementById('transporte_m');
        transporte_peso = document.getElementById('transporte_peso');
        transporte_destino = document.getElementById('transporte_destino');
        transporte_tipo = document.getElementById('transporte_tipo');
        transporte_transportadora = document.getElementById('transporte_transportadora');
        faturado = document.getElementById('faturado');
        status = document.getElementById('transporte_status');
		
		transporte_created_at.value = trim(transporte_created_at.value);

        if (transporte_ndt != null && transporte_ndt.value == ""){
                alert ('O campo NDT é de preenchimento obrigatório.');
                }else if (!validaDepositos(tamanho)){
                alert("É nencessário que seja preenchido todas as informações sobre os depósitos!");
                }else if (transporte_destino != null && transporte_destino.value == ""){
                alert ('O campo Itinerário é de preenchimento obrigatório.');
                }else if (transporte_transportadora != null && transporte_transportadora.value == ""){
                alert ('O campo TRANSPORTADORA é de preenchimento obrigatório.');
                }else if (transporte_tipo != null && transporte_tipo.value == ""){
                alert ('O campo TIPO é de preenchimento obrigatório.');
                }else if (transporte_created_at != null && transporte_created_at.value == ""){
                alert ('O campo DATA é de preenchimento obrigatório.');
                }else if (transporte_m != null && transporte_m.value == ""){
                alert ('O campo VOLUME é de preenchimento obrigatório.');
                }else if (transporte_peso != null && transporte_peso.value == ""){
                alert ('O campo PESO é de preenchimento obrigatório.');
                }else if ( status != null && status.value == ""){
                alert ('O campo STATUS é de preenchimento obrigatório.');
                }else if (faturado != null && faturado.value == "false" && status.value == <%= $LIB %>){
                alert ('Não pode LIBERAR um transporte antes de faturá-lo.');
                }else if (validarBOX(tamanho)
					&& validaData($('transporte_created_at'),"A data está inválida")
					&& isBigger2Igualdade($F('hoje'),$F('transporte_created_at'),"A data de criação do DT não pode ser maior que hoje.")				
				){
                    //naoExisteNdt("Número de Trasnporte ja existe.");
					document.forms[0].submit();
                }
}

function naoExisteNdt(msg){
	var ndt = $F('transporte_ndt');
	var ndt_antigo = $F('ndt_antigo');
	if (ndt_antigo != ndt){
		jQuery.post("/transportes/existendt/"+ndt,
		  function(data){
			var retorno = jQuery(data, 'ndt').text();
			if(retorno == 1){
				alert(msg);
				return false;
			}else{
				document.forms[0].submit()		
				return true;
			}
		});		
	}else{
		document.forms[0].submit()		
		return true;
	}
}

function soma_pares(tamanho){

        var resultado = new Number(0);
		
		$$('input.pares').each(function(txt){
			if (txt != null && txt.disabled == false && txt.value != ""){
				var valor = new Number(txt.value);
				resultado = resultado + valor;
			}
		});		

        pares = document.getElementById('transporte_pares');
		
        if (resultado != 0){
			pares.value = resultado;
		}else{
			pares.value = "";
		}
}

function soma_cxs(tamanho){

        var resultado = new Number(0);
		
		$$('input.cxs').each(function(txt){
			if (txt != null && txt.disabled == false && txt.value != ""){
				var valor = new Number(txt.value);
				resultado = resultado + valor;
			}
		});		

        pares = document.getElementById('transporte_cxs');
		
        if (resultado != 0){
			pares.value = resultado;
		}else{
			pares.value = "";
		}
}

function habilitaTextField(campo_id){
    var id_qua = "deposito_"+ campo_id + "_quantidade";
    var id_qua_cxs = "deposito_"+ campo_id + "_quantidade_cxs";
    var id_box = "deposito_" + campo_id + "_box";
    ch = document.getElementById("deposito_"+campo_id+"_checkbox");
    txt_qua = document.getElementById(id_qua);
    txt_qua_cxs = document.getElementById(id_qua_cxs);
    txt_box = document.getElementById(id_box);
    pares = document.getElementById('transporte_pares');

    if (ch.checked){
                txt_qua.disabled = false;
                txt_qua_cxs.disabled = false;
                txt_box.disabled = false
                }else{
        txt_qua.disabled = true;
        txt_qua.value = "";
        txt_qua_cxs.disabled = true;
        txt_qua_cxs.value = "";
        txt_box.disabled = true;
        txt_box.value = "";
        soma_pares(<%= @deposito.size %>);
        soma_cxs(<%= @deposito.size %>);
    }
}

function somente_numero(campo){
        var digits="0123456789"
        var campo_temp
        for (var i=0;i<campo.value.length;i++){
                campo_temp=campo.value.substring(i,i+1)
                if (digits.indexOf(campo_temp)==-1){
                        campo.value = campo.value.substring(0,i);
                        break;
                        }
                }
        }

function Mascara(tipo, campo, teclaPress) {
        if (window.event)
                {
                        var tecla = teclaPress.keyCode;
                        } else {
                tecla = teclaPress.which;
                }

        var s = new String(campo.value);
        // Remove todos os caracteres à seguir: ( ) / - . e espaço, para tratar a string denovo.
        s = s.replace(/(\.|\(|\)|\/|\-| )+/g,'');
        tam = s.length + 1;
        if ( tecla != 9 && tecla != 8 ) {
                switch (tipo)
                        {
                        case 'CPF' :
                                if (tam > 3 && tam < 7)
                                        campo.value = s.substr(0,3) + '.' + s.substr(3, tam);
                                if (tam >= 7 && tam < 10)
                                        campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,tam-6);
                                if (tam >= 10 && tam < 12)
                                        campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,3) + '-' + s.substr(9,tam-9);
                                break;
                        case 'CNPJ' :

                                if (tam > 2 && tam < 6)
                                        campo.value = s.substr(0,2) + '.' + s.substr(2, tam);
                                if (tam >= 6 && tam < 9)
                                        campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,tam-5);
                                if (tam >= 9 && tam < 13)
                                        campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,3) + '/' + s.substr(8,tam-8);
                                if (tam >= 13 && tam < 15)
                                        campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,3) + '/' + s.substr(8,4)+ '-' + s.substr(12,tam-12);
                                break;

                        case 'TEL' :
                                if (tam > 2 && tam < 4)
                                        campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,tam);
                                if (tam >= 7 && tam < 11)
                                        campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,4) + '-' + s.substr(6,tam-6);
                                break;
                        case 'DATA' :
                                if (tam > 2 && tam < 4)
                                        campo.value = s.substr(0,2) + '/' + s.substr(2, tam);
                                if (tam > 4 && tam < 10)
                                        campo.value = s.substr(0,2) + '/' + s.substr(2,2) + '/' + s.substr(4,tam-4);
                                break;
                        }
                }
        }
</script>